iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
生成式 AI

AI 給我錢錢錢 ! AI 股神養成計劃系列 第 20

Day 20 : 別怕太吵!AI 幫你濾掉市場雜訊

  • 分享至 

  • xImage
  •  

在股市的世界裡,每天都有數不清的新聞、財經報導、分析文章、甚至論壇留言。
但這些訊息中,有些只是「雜訊」,有些才是真正影響股價的「訊號」。
今天我們要用 AI 自動幫忙判斷、分類、總結,讓投資人不用再被資訊海淹沒!

財經新聞過濾

python
import requests
import pandas as pd
import google.generativeai as genai

# === 設定 API ===
NEWS_API_KEY = "你的NewsAPI金鑰"
genai.configure(api_key="你的Gemini API Key")
model = genai.GenerativeModel("gemini-1.5-flash")

# === 抓取財經新聞 ===
url = f"https://newsapi.org/v2/everything?q=stock market&language=en&apiKey={NEWS_API_KEY}"
resp = requests.get(url).json()

articles = resp["articles"][:5]  # 取前五篇新聞
news_df = pd.DataFrame([{
    "title": a["title"],
    "content": a["description"]
} for a in articles])

print(news_df)

# === AI 自動過濾與摘要 ===
for i, row in news_df.iterrows():
    prompt = f"""
    以下是一則財經新聞:
    標題:{row['title']}
    內文:{row['content']}

    請判斷這則新聞是否對股市有實質影響 (Yes/No),
    並簡單摘要重點(50字內)。
    """
    response = model.generate_content(prompt)
    print(f"新聞 {i+1} 分析結果:\n{response.text}\n")

執行結果

https://ithelp.ithome.com.tw/upload/images/20250901/20169444L20vIZvJ70.png

論壇留言 / 股吧過濾

很多人會看 StockTwits、Reddit、PTT 股票版,但裡面資訊良莠不齊。
我們可以讓 AI 幫忙分辨 情緒、可信度

python
import google.generativeai as genai

genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-2.5-flash")


comments = [
    "這支股票快要爆發了!買就對了!🚀🚀",
    "根據公司財報,本季營收下降 10%,要小心。",
    "聽說有內線交易,趕快跑吧!"
]

for c in comments:
    prompt = f"""
    這是一則投資留言:{c}

    請幫我分類:
    1. 內容是否具備可信度 (高/中/低)
    2. 情緒傾向 (樂觀/悲觀/中立)
    3. 是否可能是市場雜訊 (Yes/No)
    """
    resp = model.generate_content(prompt)
    print(f"留言分析:{c}\n{resp.text}\n")

執行結果

https://ithelp.ithome.com.tw/upload/images/20250902/20169444XgByRRKE8F.png

功能:AI 幫你過濾掉「過度情緒化」或「毫無依據」的留言。

推特市場脈動

接著可以用 X API 抓即時推文,然後讓 AI 過濾:

  • 哪些推文有實際價值

  • 哪些只是情緒渲染

  • 總結當前市場氣氛

python
!pip install tweepy pandas

import tweepy
import pandas as pd

# === 填入你的 Twitter API Key (Bearer Token) ===
bearer_token = "YOUR_TWITTER_BEARER_TOKEN"

# 建立 client
client = tweepy.Client(bearer_token=bearer_token)

# === 設定搜尋條件 ===
query = "(投資 OR 股票 OR 股市 OR ETF OR 美股 OR 投資理財) lang:zh -is:retweet"
# 搜尋中文推文,排除轉推
tweets = client.search_recent_tweets(
    query=query,
    max_results=50,   # 每次最多 100
    tweet_fields=["id", "text", "created_at", "author_id", "lang"]
)

# === 整理成 DataFrame ===
data = []
for tweet in tweets.data:
    data.append([tweet.id, tweet.created_at, tweet.author_id, tweet.text])

df = pd.DataFrame(data, columns=["id", "date", "author", "content"])
df.head()
  1. 先去 X Developer Portal 申請專案。

  2. 在「Keys and Tokens」裡找到 Bearer Token,複製貼到程式裡。

  3. 修改 query,就能抓取你要的資料。

執行結果

https://ithelp.ithome.com.tw/upload/images/20250902/20169444IcH1dAyN0a.png

接著要把「海量的推文」轉化成「精煉的市場情報」,用 Gemini AI 過濾並總結。

python
import google.generativeai as genai

# === Gemini API Key ===
genai.configure(api_key="你的_Gemini_API_Key")
model = genai.GenerativeModel("gemini-1.5-flash")

# 整理推文內容
tweet_texts = "\n".join(df["content"].tolist())

# 指示 Gemini 過濾
prompt = f"""
以下是一些投資相關推文,請幫我分類與總結:

1. 哪些推文有實際價值(包含數據、公司動向、投資理由)?
2. 哪些推文只是情緒渲染(樂觀或悲觀,但缺乏具體依據)?
3. 總結這些推文反映的當前市場氣氛。

推文內容如下:
{tweet_texts}
"""

response = model.generate_content(prompt)
print(response.text)

執行結果

https://ithelp.ithome.com.tw/upload/images/20250902/201694444tMGEAioZV.png

https://ithelp.ithome.com.tw/upload/images/20250902/20169444E6zjhU8DFo.png

https://ithelp.ithome.com.tw/upload/images/20250902/20169444CNzLrbTNmr.png

結語

今天我們把這個專案的資訊過濾系統成功升級,現在它不只能自動篩選有用的新聞,還能從論壇和社群媒體中過濾雜訊,確保使用者能迅速掌握關鍵資訊,不再被海量無用訊息淹沒。

👉 明天(Day 21),我們要開始把前面 20 天的成果慢慢整合進「AI 投資助理展示館」網站!


上一篇
Day 19 : 一鍵多股!一次追蹤多家公司投資報告
系列文
AI 給我錢錢錢 ! AI 股神養成計劃20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言